Dassault 3DEXPERIENCE Enovia
Note: Users must procure and maintain valid licenses to integrate this commercial PLM tool with the Istari Digital Platform. Please contact your local IT administrator for assistance.
Summary
The Dassault 3DEXPERIENCE Enovia module enables the Istari Digital Platform to interact with Enovia to create and extract Issues, Change Requests, Change Orders, and Change Actions. This integration provides comprehensive change management capabilities, allowing you to search for documents, extract metadata, create change items, and attach physical products to change items programmatically.
Supported File Types: .istari_dassault_3dexperience_metadata
Connection Methods: Link (via 3DEXPERIENCE URL and authentication)
How and Where to Use
You can use the Dassault 3DEXPERIENCE Enovia module through either the Istari Digital Platform UI or the Istari Digital SDK. Both methods allow you to interact with Enovia change management items and documents.
What You Can Do
The Dassault 3DEXPERIENCE Enovia module enables you to:
- Search for 3DX Documents and retrieve document IDs
- Extract files associated with 3DX Documents
- Create and extract Issues with full metadata
- Create and extract Change Requests, Change Orders, and Change Actions
- Search for Issues, Change Actions, and other change items
- Attach Physical Products to Issues and Change Actions
- Access comprehensive metadata including descriptions, titles, states, owners, priorities, and dates
Prerequisites
Before using this integration, ensure:
- Dassault 3DEXPERIENCE Enovia is installed and configured by your administrator
- You have access to a 3DEXPERIENCE platform instance
- You have valid 3DEXPERIENCE authentication credentials (username and password)
- The Istari Digital Agent is installed and configured
- You have access to the Istari Digital Platform UI or the Istari Digital SDK
- The Dassault 3DEXPERIENCE Enovia module is installed on the Istari Digital Agent
API
Functions Overview
| Function | Description | Inputs | Outputs |
|---|---|---|---|
@istari:document_search | Searches for 3DX Documents containing a search string | 3DX URL, search_string | List of document IDs |
@istari:extract_document_files | Extracts files associated with a 3DX Document | 3DX URL, search_string or dassault_3dx_physical_id | Directory containing extracted files |
@istari:create_issue | Creates a 3DX Enovia Issue | 3DX URL, description (required), title, name, severity (optional) | Issue metadata (id, description, title, state, owner, etc.) |
@istari:extract_issue | Extracts metadata for a 3DX Enovia Issue | 3DX URL, search_string or dassault_3dx_physical_id | Issue metadata (id, description, title, state, owner, etc.) |
@istari:issue_search | Searches for 3DX Enovia Issues | 3DX URL, search_string | List of issue IDs |
@istari:create_change_action | Creates a 3DX Enovia Change Action | 3DX URL, description (required), title (required), name, severity | Change Action metadata |
@istari:extract_change_action | Extracts metadata for a 3DX Enovia Change Action | 3DX URL, search_string or dassault_3dx_physical_id | Change Action metadata |
@istari:change_action_search | Searches for 3DX Enovia Change Actions | 3DX URL, search_string | List of Change Action IDs |
@istari:create_change_request | Creates a 3DX Enovia Change Request | 3DX URL, description (required), title (required), name, severity | Change Request metadata |
@istari:extract_change_request | Extracts metadata for a 3DX Enovia Change Request | 3DX URL, dassault_3dx_physical_id (required) | Change Request metadata |
@istari:create_change_order | Creates a 3DX Enovia Change Order | 3DX URL, description (required), title (required), name, severity | Change Order metadata |
@istari:extract_change_order | Extracts metadata for a 3DX Enovia Change Order | 3DX URL, dassault_3dx_physical_id (required) | Change Order metadata |
@istari:attach_physical_product_to_issue | Attaches a 3DX Physical Product to a 3DX Enovia Issue | 3DX URL, Issue identifier, Physical Product identifier | Updated Issue with attached Physical Product |
@istari:attach_physical_product_to_change_action | Attaches a 3DX Physical Product to a 3DX Enovia Change Action | 3DX URL, Change Action identifier, Physical Product identifier | Updated Change Action with attached Physical Product |
The following sections describe the format of inputs and outputs for each function in detail.
@istari:document_search
Searches for 3DX Documents that contain the given search string.
Istari Function Name: @istari:document_search
Required Parameters
- 3DX authentication credentials
search_string: str— The string to find within the 3DX Documents
Optional Parameters: None
Example Input
{
"dassault_3dx_url": "https://www.my-3dx-url.com",
"search_string": "My Search String"
}
Example Output
{
"document_ids": [
"document_3dx_physical_id_1",
"document_3dx_physical_id_2",
"document_3dx_physical_id_3",
...
]
}
@istari:extract_document_files
Extracts the files associated with a 3DX Document.
Istari Function Name: @istari:extract_document_files
Required Parameters
- 3DX authentication credentials
- At least one optional parameter
Optional Parameters
search_string: str— The string to find within the 3DX Documentsdassault_3dx_physical_id: str— The 3DX Physical ID for the desired 3DX Document
Example Input
Search:
{
"dassault_3dx_url": "https://www.my-3dx-url.com",
"search_string": "My Search String"
}
By Document ID:
{
"dassault_3dx_url": "https://www.my-3dx-url.com",
"dassault_3dx_physical_id": "my_document_id"
}
Example Output
An Output object which points to a directory containing the extracted files.
Output(
name='extracted_document_files',
type=<OutputType.DIRECTORY: 'directory'>,
path='/your/temp/path/.../attachments'
)
@istari:create_issue
Creates a 3DX Enovia Issue.
Istari Function Name: @istari:create_issue
Required Parameters
- 3DX authentication credentials
description: str— The description of the Issue
Optional Parameters
title: str— The title of the Issuename: str— The name of the Issueseverity: str—Low,Medium, orHigh
Example Input
Model:
{
"dassault_3dx_url": "https://www.my-3dx-url.com"
}
Parameters:
{
"type": "parameter",
"value": [
["title", "My Issue Title"],
["description", "My Issue description."]
]
}
Example Output
{
"id": "my_issue_id",
"cestamp": "...",
"policy": "Issue",
"type": "Issue",
"description": "My Issue Description",
"title": "My Issue Title",
"name": "My Issue Name",
"state": "Assign",
"owner": "my_3dx_username",
"organization": "My Company Name",
"collabSpace": "My Collab Space",
"priority": "Low",
"withApproval": "false",
"Estimated Start Date": "",
"Actual Start Date": "2025-01-01T12:00:00+0000",
"Estimated End Date": "",
"Actual End Date": "",
"Escalation Required": "No",
"Resolution Recommendation": ""
}
@istari:extract_issue
Extracts the metadata for a 3DX Enovia Issue.
Istari Function Name: @istari:extract_issue
Required Parameters
- 3DX authentication credentials
- At least one optional parameter
Optional Parameters
search_string: str— The string to find within the 3DX Enovia Issuesdassault_3dx_physical_id: str— The 3DX Physical ID for the desired 3DX Enovia Issue
Example Input
Search:
{
"dassault_3dx_url": "https://www.my-3dx-url.com",
"search_string": "My Search String"
}
By Issue ID:
{
"dassault_3dx_url": "https://www.my-3dx-url.com",
"dassault_3dx_physical_id": "my_issue_id"
}
Example Output
{
"id": "my_issue_id",
"cestamp": "...",
"policy": "Issue",
"type": "Issue",
"description": "My Issue Description",
"title": "My Issue Title",
"name": "My Issue Name",
"state": "Assign",
"owner": "my_3dx_username",
"organization": "My Company Name",
"collabSpace": "My Collab Space",
"priority": "Low",
"withApproval": "false",
"Estimated Start Date": "",
"Actual Start Date": "2025-01-01T12:00:00+0000",
"Estimated End Date": "",
"Actual End Date": "",
"Escalation Required": "No",
"Resolution Recommendation": ""
}
@istari:issue_search
Searches for 3DX Enovia Issues and returns a list of issue IDs.
Istari Function Name: @istari:issue_search
Required Parameters
- 3DX authentication credentials
search_string: str— The string to find within the 3DX Enovia Issues
Optional Parameters: None
Example Input
{
"dassault_3dx_url": "https://www.my-3dx-url.com",
"search_string": "My Search String"
}
Example Output
{
"issue": [
{
"type": "Issue",
"identifier": "my_issue_id"
}
]
}
@istari:create_change_action
Creates a 3DX Enovia Change Action.
Istari Function Name: @istari:create_change_action
Required Parameters
- 3DX authentication credentials
description: str— The description of the Change Actiontitle: str— The title of the Change Action
Optional Parameters
name: str— The name of the Change Actionseverity: str—Low,Medium, orHigh
Example Input
Model:
{
"dassault_3dx_url": "https://www.my-3dx-url.com"
}
Parameters:
{
"type": "parameter",
"value": [
["title", "My Title"],
["description", "My description."]
]
}
Example Output
{
"id": "my_change_action_id",
"cestamp": "...",
"type": "Change Action",
"description": "My description",
"title": "My Title",
...
}
@istari:extract_change_action
Extracts the metadata for a 3DX Enovia Change Action.
Istari Function Name: @istari:extract_change_action
Required Parameters
- 3DX authentication credentials
- At least one optional parameter
Optional Parameters
search_string: str— The string to find within the 3DX Enovia Change Actionsdassault_3dx_physical_id: str— The 3DX Physical ID for the desired 3DX Enovia Change Action
Example Input
Search:
{
"dassault_3dx_url": "https://www.my-3dx-url.com",
"search_string": "My Search String"
}
By Change Action ID:
{
"dassault_3dx_url": "https://www.my-3dx-url.com",
"dassault_3dx_physical_id": "my_change_action_id"
}
Example Output
{
"id": "my_change_action_id",
"cestamp": "...",
"type": "Change Action",
"description": "My Description",
"title": "My Title",
"name": "My Name",
...
}
@istari:change_action_search
Searches for 3DX Enovia Change Actions and returns a list of Change Action IDs.
Istari Function Name: @istari:change_action_search
Required Parameters
- 3DX authentication credentials
search_string: str— The string to find within the 3DX Enovia Change Actions
Optional Parameters: None
Example Input
{
"dassault_3dx_url": "https://www.my-3dx-url.com",
"search_string": "My Search String"
}
Example Output
{
"changeAction": [
{
"identifier": "my_change_action_id",
...
}
]
}
@istari:create_change_request
Creates a 3DX Enovia Change Request.
Istari Function Name: @istari:create_change_request
Required Parameters
- 3DX authentication credentials
description: str— The description of the Change Requesttitle: str— The title of the Change Request
Optional Parameters
name: str— The name of the Change Requestseverity: str—Low,Medium, orHigh
Example Input
Model:
{
"dassault_3dx_url": "https://www.my-3dx-url.com"
}
Parameters:
{
"type": "parameter",
"value": [
["title", "My Title"],
["description", "My description."]
]
}
Example Output
{
"id": "my_change_request_id",
"cestamp": "...",
"type": "Change Request",
"description": "My description",
"title": "My Title",
...
}
@istari:extract_change_request
Extracts the metadata for a 3DX Enovia Change Request.
Istari Function Name: @istari:extract_change_request
Required Parameters
- 3DX authentication credentials
dassault_3dx_physical_id: str— The 3DX Physical ID for the desired 3DX Enovia Change Request
Optional Parameters: None
Example Input
{
"dassault_3dx_url": "https://www.my-3dx-url.com",
"dassault_3dx_physical_id": "my_change_request_id"
}
Example Output
{
"id": "my_change_request_id",
"cestamp": "...",
"type": "Change Request",
"description": "My Description",
"title": "My Title",
"name": "My Name",
...
}
@istari:create_change_order
Creates a 3DX Enovia Change Order.
Istari Function Name: @istari:create_change_order
Required Parameters
- 3DX authentication credentials
description: str— The description of the Change Ordertitle: str— The title of the Change Order
Optional Parameters
name: str— The name of the Change Orderseverity: str—Low,Medium, orHigh
Example Input
Model:
{
"dassault_3dx_url": "https://www.my-3dx-url.com"
}
Parameters:
{
"type": "parameter",
"value": [
["title", "My Title"],
["description", "My description."]
]
}
Example Output
{
"id": "my_change_order_id",
"cestamp": "...",
"type": "Change Order",
"description": "My description",
"title": "My Title",
...
}
@istari:extract_change_order
Extracts the metadata for a 3DX Enovia Change Order.
Istari Function Name: @istari:extract_change_order
Required Parameters
- 3DX authentication credentials
dassault_3dx_physical_id: str— The 3DX Physical ID for the desired 3DX Enovia Change Order
Optional Parameters: None
Example Input
{
"dassault_3dx_url": "https://www.my-3dx-url.com",
"dassault_3dx_physical_id": "my_change_order_id"
}
Example Output
{
"id": "my_change_order_id",
"cestamp": "...",
"type": "Change Order",
"description": "My Description",
"title": "My Title",
"name": "My Name",
...
}
@istari:attach_physical_product_to_issue
Attaches a 3DX Physical Product to a 3DX Enovia Issue.
Istari Function Name: @istari:attach_physical_product_to_issue
Required Parameters
- 3DX authentication credentials
- At least one optional Issue model parameter
- At least one optional Physical Product parameter
Optional Parameters
Issue model:
search_string: str— The string to find within the 3DX Enovia Issuesdassault_3dx_physical_id: str— The 3DX Physical ID for the desired 3DX Enovia Issue
Physical Product:
search_string: str— The string to find within the 3DX Physical Productsdassault_3dx_physical_id: str— The 3DX Physical ID for the desired 3DX Physical Product
Example Input
Model:
{
"dassault_3dx_url": "https://www.my-3dx-url.com",
"search_string": "My Issue Search String"
}
Parameters:
{
"type": "parameter",
"value": [["dassault_3dx_physical_id", "my_physical_product_id"]]
}
Example Output
{
"id": "my_issue_id",
"affectedItems": [
{
"elements": [
{
"type": "VPMReference",
"identifier": "my_physical_product_id",
...
}
]
}
],
...
}
@istari:attach_physical_product_to_change_action
Attaches a 3DX Physical Product to a 3DX Enovia Change Action.
Istari Function Name: @istari:attach_physical_product_to_change_action
Required Parameters
- 3DX authentication credentials
- At least one optional Change Action model parameter
- At least one optional Physical Product parameter
Optional Parameters
Change Action model:
search_string: str— The string to find within the 3DX Enovia Change Actionsdassault_3dx_physical_id: str— The 3DX Physical ID for the desired 3DX Enovia Change Action
Physical Product:
search_string: str— The string to find within the 3DX Physical Productsdassault_3dx_physical_id: str— The 3DX Physical ID for the desired 3DX Physical Product
Example Input
Model:
{
"dassault_3dx_url": "https://www.my-3dx-url.com",
"search_string": "My Change Action Search String"
}
Parameters:
{
"type": "parameter",
"value": [["dassault_3dx_physical_id", "my_physical_product_id"]]
}
Example Output
{
"id": "my_change_action_id",
"affectedItems": [
{
"elements": [
{
"type": "VPMReference",
"identifier": "my_physical_product_id",
...
}
]
}
],
...
}
Usage
Method 1: Connect
Connect to 3DEXPERIENCE Enovia using a metadata file that specifies your 3DEXPERIENCE URL. Authentication credentials are provided separately through the Platform UI or SDK.
Option A: Connect via UI
- Click the Connect button or link feature on the Files page
- Select Dassault Systèmes 3DEXPERIENCE Enovia from the available integrations
- Provide your 3DEXPERIENCE platform URL (e.g.,
https://www.my-3dx-url.com). If 3DPassport is on a different host than that URL, use Option B instead and setdassault_3dx_auth_urlin the metadata file (see Authentication URL (dassault_3dx_auth_url)). - Click Connect to create the connection
Option B: Upload Metadata File Manually
Create a JSON file with the following structure and save it with the .istari_dassault_3dexperience_metadata extension:
{
"dassault_3dx_url": "https://www.my-3dx-url.com"
}
Then upload this file to the Istari Digital Platform.
Authentication URL (dassault_3dx_auth_url)
Some 3DEXPERIENCE deployments host 3DPassport (login) on a different base URL than the 3DSpace API URL you use for documents and change items. The module always uses dassault_3dx_url for REST calls (for example CSRF and resource endpoints). By default it also uses that same value for 3DPassport login.
If login must go to another host, add the optional field dassault_3dx_auth_url to your .istari_dassault_3dexperience_metadata JSON. Set it to the root URL of the 3DPassport service—the same origin your users reach for authentication (do not append /3dpassport or /login; the module adds /3dpassport/login).
Example (split Passport and platform URLs):
{
"dassault_3dx_url": "https://www.my-3dx-platform-url.com",
"dassault_3dx_auth_url": "https://www.my-3dx-passport-url.com"
}
When dassault_3dx_auth_url is omitted or null, the module uses dassault_3dx_url for both authentication and API access.
If you connect through the Platform UI with a single URL field and your tenant uses a separate Passport host, create the metadata file manually (Option B) and include dassault_3dx_auth_url as shown above.
After Connecting (Both Options)
-
Open the connected resource.
Click on the 3DEXPERIENCE Enovia resource in your files list. -
Navigate to the Artifacts tab.
Click the Artifacts tab to view and manage artifacts associated with this connection. -
Fill out the function execution form.
In the Execute Function section, provide the following information:- Tool Name:
dassault_3dexperience_enovia - Version: Select your 3DEXPERIENCE version (e.g.,
2023x) - Operating System: Select the OS where your Istari Digital Agent is running
- Function: Select the desired function (e.g.,
@istari:document_search,@istari:create_issue) - Agent: Select the appropriate agent
- Parameters: Provide required parameters (e.g.,
search_string,description,title)
- Tool Name:
-
Provide authentication credentials.
When prompted, provide your 3DEXPERIENCE username and password. These credentials are securely stored and used for all function executions. -
Run the function.
Click the Run or Execute button to start the job. -
Monitor job progress.
The page will display the job status. Wait for it to complete. -
View results.
Once the job completes successfully, the extracted artifacts will appear in the Artifacts tab. -
Download or view artifacts.
Click on any artifact to view contents or download to your local machine.
Using the Istari Digital SDK
Prerequisite: Install Istari Digital SDK and initialize Istari Digital Client per instructions here
Step 1: Set Up Authentication
Create a file containing your 3DEXPERIENCE authentication credentials:
my_3dx_credentials.json:
{
"username": "<my_3dx_username>",
"password": "<my_3dx_password>"
}
Use the Istari client to create an auth source:
from dotenv import load_dotenv
import os
from istari_digital_client import Client, Configuration, FunctionAuthType, FunctionAuthSecret, NewSource
# Load the environment variable that contains your Istari PAT
load_dotenv()
istari_token: str = os.getenv("ISTARI_TOKEN")
# Create the Istari client
config: Configuration = Configuration(
registry_url="http://localhost:8000",
registry_auth_token=istari_token,
)
client: Client = Client(config)
# Create an auth source containing your 3DX login credentials
auth_abs_path = os.path.abspath("./my_3dx_credentials.json")
function_auth_secret: FunctionAuthSecret = client.add_function_auth_secret(
path=auth_abs_path,
function_auth_type=FunctionAuthType.BASIC,
)
auth_source: NewSource = NewSource(
revision_id=function_auth_secret.revision.id,
relationship_identifier="dassault_3dx_auth",
)
Step 2: Create and Upload the Metadata File
Create a metadata file with your 3DEXPERIENCE URL:
import json
from pathlib import Path
# Create the 3DEXPERIENCE metadata file
product_metadata = {
"dassault_3dx_url": "https://www.my-3dx-url.com",
# Optional: only if 3DPassport uses a different base URL than dassault_3dx_url
# "dassault_3dx_auth_url": "https://www.my-3dx-passport-url.com",
}
# Save to a file with .istari_dassault_3dexperience_metadata extension
metadata_path = Path("my_3dx_connection.istari_dassault_3dexperience_metadata")
with open(metadata_path, "w") as f:
json.dump(product_metadata, f, indent=2)
# Upload the metadata file as a model
model = client.add_model(
path=str(metadata_path),
description="3DEXPERIENCE Enovia connection",
display_name="My 3DX Enovia Connection",
)
print(f"Uploaded 3DEXPERIENCE metadata with model ID {model.id}")
Step 3: Execute Functions
Example: Search for Documents
# Initiate a job to search for 3DX Documents
job = client.add_job(
model_id=model.id,
function="@istari:document_search",
tool_name="dassault_3dexperience_enovia",
tool_version="2023x",
operating_system="Windows 11",
sources=[auth_source],
parameters={
"search_string": "My Search String"
}
)
print(f"Document search started, job ID: {job.id}")
# Wait for completion
status = job.poll_job()
if status != "COMPLETED":
raise Exception(f"Job failed with status {status}")
Example: Create an Issue
# Create an Issue with required and optional parameters
job = client.add_job(
model_id=model.id,
function="@istari:create_issue",
tool_name="dassault_3dexperience_enovia",
tool_version="2023x",
operating_system="Windows 11",
sources=[auth_source],
parameters={
"parameters": [
("title", "My Issue Title"),
("description", "My Issue description."),
("name", "My Issue Name"),
("severity", "High")
]
}
)
print(f"Issue creation started, job ID: {job.id}")
# Wait for completion
status = job.poll_job()
if status != "COMPLETED":
raise Exception(f"Job failed with status {status}")
Example: Extract Issue Metadata
# Extract Issue metadata by physical ID
job = client.add_job(
model_id=model.id,
function="@istari:extract_issue",
tool_name="dassault_3dexperience_enovia",
tool_version="2023x",
operating_system="Windows 11",
sources=[auth_source],
parameters={
"dassault_3dx_physical_id": "my_issue_id"
}
)
print(f"Issue extraction started, job ID: {job.id}")
# Wait for completion
status = job.poll_job()
if status != "COMPLETED":
raise Exception(f"Job failed with status {status}")
Example: Attach Physical Product to Issue
# Attach a Physical Product to an Issue
job = client.add_job(
model_id=model.id,
function="@istari:attach_physical_product_to_issue",
tool_name="dassault_3dexperience_enovia",
tool_version="2023x",
operating_system="Windows 11",
sources=[auth_source],
parameters={
"parameters": [
("dassault_3dx_physical_id", "my_physical_product_id")
]
}
)
# Note: The Issue can be identified by search_string in the model metadata
# or by providing dassault_3dx_physical_id in parameters
print(f"Attach Physical Product job started, job ID: {job.id}")
# Wait for completion
status = job.poll_job()
if status != "COMPLETED":
raise Exception(f"Job failed with status {status}")
Step 4: Retrieve Results
from pathlib import Path
# Retrieve the model with updated artifacts
model = client.get_model(model.id)
for artifact in model.artifacts:
output_file_path = f"c:\\enovia_extracts\\{artifact.name}"
# Create directory if needed
Path(output_file_path).parent.mkdir(parents=True, exist_ok=True)
if artifact.extension in ["txt", "csv", "md", "json", "html"]:
with open(output_file_path, "w", encoding="utf-8") as f:
f.write(artifact.read_text())
print(f"Saved artifact: {output_file_path}")
else:
# Binary files or directories
if artifact.type == "directory":
# Handle directory artifacts (e.g., extracted document files)
print(f"Directory artifact: {artifact.name} at {artifact.path}")
else:
with open(output_file_path, "wb") as f:
f.write(artifact.read_bytes())
print(f"Saved binary artifact: {output_file_path}")
Notes on Output Files
- Document IDs (
document_ids): JSON array containing physical IDs of documents matching the search criteria - Extracted Document Files: Directory containing all files extracted from a 3DX Document
- Issue/Change Item Metadata: JSON objects containing complete metadata including id, description, title, state, owner, organization, collabSpace, priority, dates, and other relevant fields
- Affected Items: JSON array showing attached Physical Products with their identifiers and metadata
Installation
Prerequisites
Before installing the Dassault 3DEXPERIENCE Enovia module, ensure:
- Dassault 3DEXPERIENCE is installed and accessible
- Istari Digital Agent version 9.0.0 or higher is installed
- Network connectivity to your 3DEXPERIENCE platform instance
- Valid 3DEXPERIENCE credentials with appropriate permissions
Configuration
The Istari Digital Agent is configured via istari_digital_config.yaml. The Agent expects the file at:
%LOCALAPPDATA%\istari_digital\on Windows~/.config/istari_digital/on RHEL/Ubuntu
The Dassault 3DEXPERIENCE Enovia module typically requires no additional configuration beyond standard agent setup. Authentication credentials are provided per-job through the Platform UI or SDK.
Configuration Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| None | N/A | N/A | The module uses job-level authentication credentials provided at runtime |
Authentication
All functions require 3DEXPERIENCE authentication credentials. These can be provided:
- Via Platform UI: Enter credentials when prompted during function execution
- Via SDK: Create an auth source using
add_function_auth_secretwithFunctionAuthType.BASICand relationship identifierdassault_3dx_auth
The credentials are securely stored and used only for the duration of the job execution.
Versions
Current Module Version
The module version information is maintained in the module repository. Check with your administrator for the specific version installed.
Compatibility Notes
- 3DEXPERIENCE Versions: Compatible with 3DEXPERIENCE 2023x.
- Istari Digital Agent: Requires version 9.0.0 or higher
- Operating Systems: Windows 10, Windows 11, Windows Server 2019, Windows Server 2022, Ubuntu 22.04, RHEL 8
- Python Version: Not applicable (compiled module)
Troubleshooting
Common Issues
Issue: Authentication Failed
- Symptom: Error messages indicating authentication failure or "Invalid credentials"
- Cause: Incorrect username/password, expired credentials, or insufficient permissions
- Solution:
- Verify your 3DEXPERIENCE username and password are correct
- Test logging into 3DEXPERIENCE manually with the same credentials
- Ensure your account has permissions to access the requested items
- Check if your password has expired and needs to be reset
- Verify the relationship identifier matches
dassault_3dx_authwhen using SDK - If your deployment splits 3DPassport and 3DSpace URLs, ensure
dassault_3dx_auth_urlin the metadata file points at the Passport base URL anddassault_3dx_urlat the API platform URL (see Authentication URL (dassault_3dx_auth_url))
Issue: Document or Item Not Found
- Symptom: Error messages indicating "Document not found" or "Issue not found"
- Cause: Incorrect physical ID, item doesn't exist, or insufficient permissions
- Solution:
- Verify the physical ID is correct by checking the item URL in 3DEXPERIENCE
- Ensure the item exists in your 3DEXPERIENCE instance
- Check that your account has read permissions for the item
- For search functions, verify the search string matches items in your instance
- Try searching with a broader search string to find the item
Issue: Create Function Failed
- Symptom: Error when creating Issues, Change Requests, Change Orders, or Change Actions
- Cause: Missing required parameters, insufficient permissions, or validation errors
- Solution:
- Ensure all required parameters are provided (e.g.,
descriptionfor Issues) - Verify your account has create permissions in the target collaboration space
- Check that optional parameters like
severityuse valid values (Low,Medium,High) - Review the error message for specific validation failures
- Ensure the 3DEXPERIENCE URL in your metadata file is correct
- Ensure all required parameters are provided (e.g.,
Issue: Extract Document Files Returns Empty Directory
- Symptom: Directory artifact exists but contains no files
- Cause: Document has no attached files, or files are not accessible
- Solution:
- Verify the document has attached files in 3DEXPERIENCE
- Check that your account has permission to download the files
- Ensure the document physical ID is correct
- Try extracting a different document to verify the function works
Issue: Module Not Found or Won't Execute
- Symptom: Error messages indicating the module cannot be found or executed
- Cause: Module not installed correctly, wrong agent version, or configuration issues
- Solution:
- Verify Istari Digital Agent version is 9.0.0 or higher
- Check that the Enovia module is installed in the correct agent modules directory
- Restart the Istari Digital Agent service
- Review agent logs for specific error messages
- Contact your administrator to verify the module installation
Issue: Network Connectivity Problems
- Symptom: Timeouts or connection errors when executing functions
- Cause: Network issues, firewall blocking, or incorrect 3DEXPERIENCE URL
- Solution:
- Verify network connectivity to your 3DEXPERIENCE instance
- Check that the 3DEXPERIENCE URL in your metadata file is correct and accessible
- Ensure firewall rules allow connections from the agent machine to 3DEXPERIENCE
- Test accessing the 3DEXPERIENCE URL from a browser on the agent machine
- Check for proxy configuration requirements
Getting Help
If you continue to experience issues:
- Check the module log files for detailed error messages
- Review the Istari Digital Agent logs for additional context
- Verify 3DEXPERIENCE connectivity and authentication manually
- Consult the main troubleshooting guide for general agent issues
- Contact Istari Digital support with:
- Module version
- Agent version
- 3DEXPERIENCE version
- Operating system
- Error messages from module logs and agent logs
- Steps to reproduce the issue
- Function name and parameters used
Tips and Best Practices
Authentication Management
- Secure Storage: Store authentication credentials securely. Never commit credentials to version control
- Credential Rotation: Regularly rotate 3DEXPERIENCE passwords and update stored credentials
- Credential Validation: Test credentials manually in 3DEXPERIENCE before using them in automated workflows
Search and Identification
- Search Strings: Use specific search strings to narrow results. Broad searches may return many items
- Physical IDs: When possible, use physical IDs instead of search strings for more reliable identification
- Unique Identifiers: Ensure element names are unique when using
element_nameinstead ofelement_id
Change Management Workflow
- Required Fields: Always provide required fields (
descriptionfor Issues,descriptionandtitlefor Change Requests/Orders/Actions) - Severity Levels: Use consistent severity values (
Low,Medium,High) across your organization - Metadata Completeness: Provide optional fields like
nameandseverityfor better organization and filtering - State Management: Be aware that created items start in specific states (e.g., "Assign" for Issues)
Physical Product Attachment
- Verification: Verify Physical Product IDs exist before attempting to attach them
- Permissions: Ensure your account has permission to modify the target Issue or Change Action
- Search vs ID: Use search strings for Issues/Change Actions when the exact ID is unknown, but prefer IDs for Physical Products
Performance Optimization
- Search Efficiency: Use specific search strings to reduce processing time
- Concurrent Jobs: The agent can handle multiple jobs, but be mindful of 3DEXPERIENCE server load
- Network Latency: Account for network latency when working with remote 3DEXPERIENCE instances
Data Quality
- Validation: Validate extracted metadata against 3DEXPERIENCE to ensure accuracy
- Error Handling: Implement proper error handling in SDK workflows to catch and handle failures gracefully
- Logging: Review job logs regularly to identify patterns or recurring issues
FAQ
-
What 3DEXPERIENCE versions are supported?
- The module is compatible with 3DEXPERIENCE 2022x, 2023x, and later versions. Exact functionality may vary by version.
-
Do I need a local 3DEXPERIENCE installation?
- No, the module connects to your 3DEXPERIENCE platform instance via web services. You only need network connectivity and valid credentials.
-
Can I use this module without the Istari Digital Platform UI?
- Yes, you can use the Istari Digital SDK to interact with the module programmatically.
-
What's the difference between search functions and extract functions?
- Search functions return lists of IDs matching criteria. Extract functions retrieve full metadata for specific items identified by ID or search string.
-
How do I find the physical ID of an item?
- Physical IDs can be found in the URL when viewing items in 3DEXPERIENCE, or by using search functions to locate items and retrieve their IDs.
-
Can I update existing Issues or Change Items?
- The module currently supports creating and extracting items. Update functionality may be available in future versions.
-
What happens if I create a duplicate Issue?
- Each creation operation creates a new item. There's no built-in duplicate detection - manage this in your workflows.
-
Are there limits on search results?
- Search functions return all matching items. For very large result sets, consider using more specific search strings.
-
Can I attach multiple Physical Products at once?
- Currently, attach functions attach one Physical Product per call. Multiple attachments require multiple function calls.
-
What authentication methods are supported?
- The module uses BASIC authentication with username and password. Other authentication methods may be supported in future versions.